HAL LPTIM functions IRQHandler and callbacks migration

HAL LPTIM IRQ handler

HAL1

HAL2

void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_IRQHandler(hal_lptim_handle_t *hlptim);

Note

In HAL2, additional specialized HAL LPTIM IRQ handlers are provided. These handlers have a focused scope, each dedicated respectively to managing interrupts, flags, and callbacks for Update, Capture Compare, or Trigger events only ( HAL_LPTIM_UPD_IRQHandler, HAL_LPTIM_CC_IRQHandler, HAL_LPTIM_TRGI_DIR_IRQHandler). Using these specialized IRQ handlers instead of the global HAL_LPTIM_IRQHandler allows users to optimize both code footprint and real-time responsiveness of interrupt management by handling only the relevant interrupt sources.

Related concept: Introduce specialized IRQ handlers


HAL LPTIM callbacks

HAL LPTIM auto-reload match event callback

HAL1

HAL2

void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_AutoReloadMatchCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM auto-reload write event callback

HAL1

HAL2

void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_AutoReloadUpdateCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM counter direction down event callback

HAL1

HAL2

void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_DirectionDownCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM counter direction up event callback

HAL1

HAL2

void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_DirectionUpCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM error callback

HAL1

HAL2

void HAL_LPTIM_ErrorCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_ErrorCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM repetition counter write callback

HAL1

HAL2

void HAL_LPTIM_RepCounterWriteCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_RepUpdateCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM trigger event callback

HAL1

HAL2

void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_TriggerCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM update event callback

HAL1

HAL2

void HAL_LPTIM_UpdateEventCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_UpdateCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM half update event callback

HAL1

HAL2

void HAL_LPTIM_UpdateEventHalfCpltCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_UpdateHalfCpltCallback(hal_lptim_handle_t *hlptim);

HAL LPTIM register callback

In HAL1, the function HAL_LPTIM_RegisterCallback is used to register various LPTIM callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific LPTIM callback.

HAL 1

HAL 2

LPTIM compare match callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_COMPARE_MATCH_CB_ID,
                           CompareMatchCallback);
HAL_LPTIM_RegisterCompareMatchCallback(&hlptim,
                                       LPTIM_CompareMatchCallback);

LPTIM auto-reload match callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_AUTORELOAD_MATCH_CB_ID,
                           AutoReloadMatchCallback);
HAL_LPTIM_RegisterAutoReloadMatchCallback(&hlptim,
                                          LPTIM_AutoReloadMatchCallback);

LPTIM external trigger event detection Callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_TRIGGER_CB_ID,
                           TriggerCallback);
HAL_LPTIM_RegisterTriggerCallback(&hlptim,
                                  LPTIM_TriggerCallback);

LPTIM compare register write complete callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_COMPARE_WRITE_CB_ID,
                           CompareWriteCallback);
HAL_LPTIM_RegisterCompareUpdateCallback(&hlptim,
                                        LPTIM_CompareUpdateCallback);

LPTIM auto-reload register write complete callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_AUTORELOAD_WRITE_CB_ID,
                           AutoReloadWriteCallback);
HAL_LPTIM_RegisterAutoReloadUpdateCallback(&hlptim,
                                           LPTIM_AutoReloadUpdateCallback);

LPTIM up-counting direction change callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_DIRECTION_UP_CB_ID,
                           DirectionUpCallback);
HAL_LPTIM_RegisterDirectionDownCallback(&hlptim,
                                        LPTIM_DirectionUpCallback);

LPTIM down-counting direction change callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_DIRECTION_DOWN_CB_ID,
                           DirectionDownCallback);
HAL_LPTIM_RegisterDirectionDownCallback(&hlptim,
                                        LPTIM_DirectionDownCallback);

LPTIM repetition counter register write complete callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_REP_COUNTER_WRITE_CB_ID,
                           RepCounterWriteCallback);
HAL_LPTIM_RegisterRepUpdateCallback(&hlptim,
                                    LPTIM_RepetitionUpdateCallback);

LPTIM update event detection callback

HAL_LPTIM_RegisterCallback(&hlptim,
                           HAL_LPTIM_UPDATE_EVENT_CB_ID,
                           UpdateEventCallback);
HAL_LPTIM_RegisterUpdateCallback(&hlptim,
                                 LPTIM_UpdateCallback);

Related concept: Individual callback registration APIs replace global register and unregister functions


HAL LPTIM unregister callbacks

In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL LPTIM weak callbacks as needed.

HAL 1

HAL 2

LPTIM compare match callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_COMPARE_MATCH_CB_ID);
HAL_LPTIM_RegisterCompareMatchCallback(&hlptim,
                                       HAL_LPTIM_CompareMatchCallback);

LPTIM auto-reload match callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_AUTORELOAD_MATCH_CB_ID);
HAL_LPTIM_RegisterAutoReloadMatchCallback(&LPTIM_Handle,
                                          HAL_LPTIM_AutoReloadMatchCallback);

LPTIM external trigger event detection callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_TRIGGER_CB_ID);
HAL_LPTIM_RegisterTriggerCallback(&hlptim,
                                  HAL_LPTIM_TriggerCallback);;

LPTIM compare register write complete callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_COMPARE_WRITE_CB_ID);
HAL_LPTIM_RegisterCompareUpdateCallback(&hlptim,
                                        HAL_LPTIM_CompareUpdateCallback);

LPTIM auto-reload register write complete callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_AUTORELOAD_WRITE_CB_ID);
HAL_LPTIM_RegisterAutoReloadUpdateCallback(&hlptim,
                                           HAL_LPTIM_AutoReloadUpdateCallback);

LPTIM up-counting direction change callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_DIRECTION_UP_CB_ID);
HAL_LPTIM_RegisterDirectionUpCallback(&hlptim,
                                      HAL_LPTIM_DirectionUpCallback);

LPTIM down-counting direction change callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_DIRECTION_DOWN_CB_ID);
HAL_LPTIM_RegisterDirectionDownCallback(&hlptim,
                                        HAL_LPTIM_DirectionDownCallback);

LPTIM update event detection callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_UPDATE_EVENT_CB_ID);
HAL_LPTIM_RegisterUpdateCallback(&hlptim,
                                 HAL_LPTIM_UpdateCallback);

LPTIM repetition counter register write complete callback

HAL_LPTIM_UnRegisterCallback(&hlptim,
                             HAL_LPTIM_REP_COUNTER_WRITE_CB_ID);
HAL_LPTIM_RegisterRepUpdateCallback(&hlptim,
                                    HAL_LPTIM_RepUpdateCallback);

Related concept: Individual callback registration APIs replace global register and unregister functions